package bcontractor.api;

/**
 * Interface for a revision operation upon a sentence set and a sentence
 * 
 * @author lundberg
 * 
 * @param <S>
 */
public interface RevisionOperator<S extends Sentence<S>> {

    /**
     * Revises a given set of sentences, removing necessary sentences to add a
     * sentence.
     * 
     * @param sentences
     *            set of sentences that must be revised
     * @param sentence
     *            sentence that should be added
     * @return revision result
     */
    SentenceSet<S> eval(SentenceSet<S> sentences, S sentence);
}
